\chapter{绪论}

\section{研究背景与意义}
随着互联网的不断发展，以互联网为载体的各种便捷服务
不断地融入到日常生活，对于这些网络服务需要解决的首要问题
是数字身份\cite{刘润达2008OpenID}问题。数字身份是一个实体在网络中的唯一标识，
数字身份的演化主要经理了以下四个阶段：中心化身份->联盟身份->
以用户为中心的身份->自我主权身份。

在互联网早期，服务提供商还较少，身份信息在各个服务商之间的
重复问题并不严重。但随着互联网发展，服务提供商的增加，
身份信息在各个服务提供商之间的重复导致身份信息的同步与更新
变得特别困难\cite{2011A}。
特别是对于密码这种时常变化的信息，
这些信息在各个服务商之间往往不统一，
如此一来，用户时常会忘记自己对应于某个服务商的信息；
另外，随着各类网络服务商的加入，
整个网络环境鱼龙混杂，服务提供商收集用户信息并在
私下售卖的恶性案件时有发生，用户信息泄露的风险也逐步升高
\cite{李怡然2018大学生个人信息的泄漏问题及法律性对策的研究}。

为了解决该问题，出现了联盟身份，类似于QQ、微信等跨平台登录一样。
他们往往监管更严，受到的监督也更全面，从道德方面接受着社会的监督。
他们对于用户信息的滥用会较少；
同时他们也提供了各个网络服务提供商获取用户信息的日志，
即用户可以查询到个人信息给了哪些网络服务提供商。
联盟身份的出现解决了中心化身份中身份数据零碎混乱的弊端，
同时让信息泄露后的追责变得有迹可循。

虽然联盟身份解决了上述的问题，但是新的问题也随之出现。
太多的个人信息集中于这些联盟身份提供商，
一旦这些联盟身份管理提供商的服务器被黑客攻破，
带来的损失是巨大的，往往造成几千万上亿的个人信息泄露。

为了解决联盟身份的问题，逐渐出现以用户为中心的数字身份管理。
用户自己管理自己的身份信息，在需要时向服务商提供信息，
这样确保了信息的自己掌握，服务提供商可以选择不存储用户信息。
这样一种去中心化的身份管理方式使得整个系统
不再依赖于联盟身份管理提供商，单点身份信息泄露的损失
相较于联盟身份管理是非常小的。

本文在现有研究的基础上，针对于以太坊\cite{2017Defining}开发了数字身份管理系统。
与基于联盟链的WeIdentity不同，
本文在以太坊公链上秉持以用户为中心的理念实现了
基于以太坊的数字身份管理系统。

\section{国内外研究现状}
随着区块链技术的发展，
越来越多的研究人员开始关注并研究基于区块链技术的实际应用。
在基于区块链的数字身份管理方面，已经取得了长远的进步，
不仅有较为成熟的理论而且已经有比较成熟的现实应用产品。

DID（Decentralized Identifier，去中心化标识符）
是W3C（World Wide Web Consortium，万维网联盟）
提出的草案DID version 1.0中的一个重要概念。
传统的中心化标识符仅仅在某个机构内部或者机构联盟的内部起作用，
如QQ号，标识了用户在腾讯QQ的网络服务中的数字身份。
在使用该身份时时，用户只需要提供其QQ号和密码，
便可以证明自己对该QQ号的拥有权。
在我们的例子中对于DID来说，
我们要求一个DID能够脱离任何一个中心化的组织机构，
它独立于应用以及网络服务，
并且也能够让DID的拥有者能够证明自己对该DID身份的合法所有权。

在理论研究的基础上，ShoCard\cite{A2018On}对于用户个人身份信息的处理别具一格，
他通过用户自己管理自己的身份信息，即将用户的身份信息保存在
用户自己的终端，服务端并不存储身份信息。
它通过数字身份认证中心来签发用户的数字身份信息，
并通过区块链保证身份信息的完整性以及有效性。

随后W3C在DID的基础上，对DID中的VC（Verifiable Credentials，可验证凭证）中提出了
选择性披露的概念
\cite{world2019verifiable}，
即当用户与第三方应用交互时，
可以在复用当前已有的数字身份信息的前提下
选择性地披露第三方应用需要的数字身份信息，
避免额外的身份信息暴露。
这种选择性披露是具有极大意义的。
对身份验证方来说，
仍然能够验证用户披露后的身份信息是否真实。
对与广大的用户来说，数字身份信息的选择性披露
不仅可以解决账号间冗余信息的管理问题，
还能够将个人身份信息的管理自主权
牢牢掌握在自己手中，
这对于用户来说是具有实际意义的。

随后微众银行提出了基于公众联盟链的实体身份标识
与可信数据交换解决方案WeIdentity。
WeIdentity是一套基于联盟区块链的分布式去中心化解决方案，
它实现了实体数字身份的分布式标识、管理以及交换协议等一系列的数字身份管理中的基础层与应用接口，
它可以安全地实现人与人、人与物之间的数据交换。

\section{本文组织结构}
本文分为六章，接下来将介绍每章的具体内容：

第一章为绪论，主要介绍本课题的研究背景和意义，
并说明国内外的研究现状，
阐述了基于区块链技术的数字身份管理的研究进展情况,
并从中提出了本章的主要研究方向和内容,
对本文的组织架构做出了详尽阐述。



第二章为相关概念基础，
介绍了区块链及其开发中的关键概念，
包括但不限于区块链、智能合约、以太坊、Solidity、
非对称加密、Merkle树以及基于Merkle树的选择性披露。
为本文所使用的技术做了底层概念与原理的解释。

第三章为相关技术基础，
介绍了本文所使用的一些关键的开发工具，
包括前后端框架，以及智能合约的开发框架，
是本文项目实现的基础。

第四章为本文项目的总体设计，
从整体上把握了系统需要实现的功能，
阐述了整个系统所涉及的业务流程，
是本文的核心部分，后面章节中的具体实现将参照该部分完成。

第五章为本文的总体实现，根据第四章中的总体设计，
从各个角度各个流程的各个方面详细讲述了系统的具体实现。

第六章回顾了本文的所有工作，对当前不足的地方进行了分析，
并提出了相应的改进意见，提出了以后研究的一些方向和建议。